#pragma once
#include <iostream>
#include "Products.hpp"
struct Creator
{
    virtual ~Creator() = default;
    virtual Product *createProduct() = 0;
};

struct GameCreator : public Creator
{
    GameCreator()
    {
        std::cout << "[DEBUG]: Init GameCreator" << std::endl;
    }

    Product *createProduct() override
    {
        return new GameProduct(); // TODO: change here
    }
};
// TODO: more Creator type to be add
// PhoneCreator